Terraform CloudでOrganizationデフォルトのExecution Modeを設定できるようになっていました

Terraform CloudでOrganizationデフォルトのExecution Modeを設定できるようになっていました

Clock Icon2023.09.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

アップデート概要

Terraform CloudのWorkspaceには、Execution Modeという設定値があります。

これは、Terraformをどこで実行するかを指定するものです。

選択できるオプションは以下のとおりです。

Execution Mode 概要
Remote Terraform Cloud上で実行
Local Local PC上で実行
Agent Terraform Agentをインストールしたサーバ上で実行

Settings - Workspaces - Terraform Cloud | Terraform | HashiCorp Developer

今回のアップデートでOrganizationのデフォルトのExecution Modeを設定できるようになりました。

WorksapceはOrganizationのデフォルトExecution Modeに従って、デフォルト値が設定されるようになります。

何が嬉しい

  • Organizationデフォルトで設定することで、Workspaceごとに設定する手間がなくなる

Terraform CloudのExecution ModeのデフォルトはRemoteです。

例えばLocalで使用するといったポリシーがある場合、コンソールからWorksapce作成後に変更する必要がありました。

Organizatinのデフォルト値を変更しておくことで、Workspaceはその値が使われるため運用の手間が減ります。

注意点

Worksapce側でOrganization Defaultを指定していると、OrganizationのDefaultが変更されたときに影響を受けます。

例えば、OrganizationのDefault Remote -> Localに変更したら、Organization Defaultを指定している全てのWorksapceのExecution ModeがLocalに変わります。

一括で変更したいときには、便利ですがミスは怖いですね。(ボタン1つで戻せますが)

When an organization owner updates the default execution mode, all workspaces configured to inherit this value will be affected.

Organizations - Terraform Cloud | Terraform | HashiCorp Developer

やってみた

デフォルトを変更して、Workspaceを作ってみる

まずはOrganizationのデフォルトExecution Modeを変更してみます。(Remote -> Local)

Worksapceを作成します。(test-default-execution-mode)

currently set to local.

上記記述から、WorkspaceのExecution ModeがLocalで設定されたことが分かります。

デフォルト変更後の既存への影響

再びOrganizationのデフォルトExecution Modeを変更して、先程作成したWorksapce(test-default-execution-mode)に影響があるのかみてみましょう。

Local -> Remoteに変更しました。

Worksapceを確認すると、Remoteに変更されていました。

Organization デフォルトを設定している場合、Organization デフォルトの Execution Modeが変わったタイミングでWorkspaceのExecution Modeも変わります。

設定変更は慎重に行ったほうが良さそうです。

アップデート以前に作成したWorkspaceのExecution Mode

アップデート以前(2023/9以前)に作成したWorksapceのExecution Modeがどうなっているのか、ふと気になったので確認してみました。

たまたま以前作成したRemoteLocalのWorkspaceがそれぞれありました。(1年前に作ったきり、放置してた。。)

結論、それぞれCustom: RemoteCustom Localで設定されていました。

OrganizationのデフォルトはRemoteのため、Remoteの方はOrganization Defaultになっているかと思いましたが、予想は外れました。

Customeになっているため、デフォルト値を変更しても設定は反映されません。

デフォルトをいじっていたら、昔作ったリソースも意図せず変えちゃったみたいな事象は発生しなさそうです。

おわりに

デフォルト値を変更できるようになったため、Remote以外をデフォルトとして運用しているパターンでは嬉しいアップデートですね。

以上、AWS事業本部の佐藤(@chari7311)でした。

合わせて読みたい

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.